﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Interfaces;

namespace Model
{
    public class Ordre : IOrdre
    {
        private int ordreNr;
        private DateTime ordreDato;
        private Homeparty homeParty;

       
        private Sælger sælger;
        private List<Delordre> delordreListe;

        public Ordre(int ordrenr, DateTime ordreDato, Homeparty homeParty, Sælger sælger)
        {
            this.ordreNr = ordrenr;
            this.ordreDato = ordreDato;
            this.homeParty = homeParty;
            this.sælger = sælger;
            delordreListe = new List<Delordre>();
        }

		public Ordre(int ordrenr, DateTime ordreDato, Homeparty homeParty)
		{
			this.ordreNr = ordrenr;
			this.ordreDato = ordreDato;
			this.homeParty = homeParty;
			delordreListe = new List<Delordre>();
		}

        public Delordre OpretDelordre(Kunde kunde, int delordrenr, bool betalt, Betalingsmetode betalingsmetode, string betalingskommentar)
        {
            Delordre delordre = new Delordre(kunde, delordrenr, betalt, betalingsmetode, betalingskommentar);
            delordreListe.Add(delordre);
            return delordre;
        }

		public Delordre OpretDelordre(Kunde kunde, int delordrenr, bool betalt, Betalingsmetode betalingsmetode)
		{
			Delordre delordre = new Delordre(kunde, delordrenr, betalt, betalingsmetode);
			delordreListe.Add(delordre);
			return delordre;
		}

        public void SletDelordre(int delordrenr)
        {
            Delordre d = FindDelordre(delordrenr);
            delordreListe.Remove(d);
        }

        public Delordre FindDelordre(int delordrenr)
        {
            foreach (Delordre d in delordreListe)
            {
                if (d.Delordrenr == delordrenr)
                {
                    return d;
                }
            }
            return null;
        }
        public Delordre FindDelordreKunde(Kunde kunde)
        {
            foreach (Delordre d in delordreListe)
            {
                if (d.Kunde == kunde)
                {
                    return d;
                }
            }
            return null;
        }

       
        #region properties
        
        public int Ordrenr
        {
            get { return ordreNr; }
            set { ordreNr = value; }
        }
        public DateTime Dato
        {
            get { return ordreDato; }
            set { ordreDato = value; }
        }
        public List<Delordre> Delordreliste
        {
            get { return delordreListe; }
        }
        public Homeparty HomeParty
        {
            get { return homeParty; }
        }
        public Sælger Sælger
        {
            get { return sælger; }
            set { sælger = value; }
        }
        #endregion
    }
}
